登录 白背景

leetcode/100-n/517. 超级洗衣机.md

2021-10-09 17:38:44
https://leetcode-cn.com/problems/super-washing-machines/
执行用时:4 ms, 在所有 Go 提交中击败了99.15%的用户
内存消耗:4.2 MB, 在所有 Go 提交中击败了100.00%的用户

func findMinMoves(machines []int) (ret int) {
    sumNum := 0
    for _, item := range machines {
        sumNum += item
    }
    if sumNum % len(machines) != 0 {
        return -1
    }
    balanceNum := sumNum / len(machines)
    //代表当前位置,需要移动的总数,正数向右移动,负数向左移动
    current := 0
    for _, item := range machines {
        current = current + (item - balanceNum)
        //取current和流出总数的最大值
        ret = max(ret, max(abs(current), item - balanceNum))
    }
    return
}

func abs(x int) int {
    if x < 0 {
        return -x
    }
    return x
}

func max(x,y int) int {
    if x > y {
        return x
    }
    return y
}